[Home] AI로 돌아가기

Deep Learning (DL) - 딥러닝

딥러닝(Deep Learning)은 인공신경망(Artificial Neural Network, ANN)을 기반으로 한 머신러닝의 한 분야로 심층학습이라고도 한다. 다층 신경망(Deep Neural Network, DNN)을 활용하여 데이터를 학습하는 알고리즘의 집합이다.

(1) 딥러닝이란?

1) 개요

딥러닝은 머신러닝의 하위 분야로, 인공신경망을 기반으로 다층 구조의 신경망을 통해 데이터를 학습하는 방식이다.

비교
그림 1. 머신러닝과 딥러닝의 학습 차이
출처: 서지영, 난생처음 인공지능 입문(2판), 한빛미디어, 2024

딥러닝 네트워크는 입력층(Input Layer), 은닉층(Hidden Layers), 출력층(Output Layer)으로 구성된다.

딥러닝 구조

2) 개발 과정

...
2차원 숫자 0(4x4 배열)을 1차원 숫자(1x16 배열)로 변경하기
출처: 길벗

[Note] 픽셀(pixel)

컴퓨터 이미지를 구성하는 하나하나의 점


...
216개의 숫자를 인공신경망에 넣어 학습한 후 정답 결과 도출
출처: 길벗
...
머신러닝 학습방법 vs 머신러닝 알고리즘
출처: 길벗

5) Word Embedding (워드 임베딩)


(2) 딥러닝 vs 인공신경망

딥러닝 모델에서는 각 노드를 뉴런(Neuron)이라고 하며, 노드 간 연결을 에지(Edge)라고 한다.

각 뉴런은 입력 값을 받아들여 가중치(weight)를 적용하고, 편향(bias)을 더한 후 활성화 함수를 통과시켜 출력을 생성한다.


1) 인공신경망(ANN, Artificial Neural Network)


2) 딥러닝(Deep Learning)


(3) 기울기 소실 문제

1) 기울기 소실 문제

딥러닝 모델이 깊어질수록 역전파(Backpropagation) 과정에서 기울기(Gradient)가 소실되는 문제가 발생한다.

이 문제는 다음과 같이 설명할 수 있다:

\[ \text{오차} = \text{출력 값} - \text{실제 정답} \]

이 오차를 최소화하기 위해 매개변수를 조정하지만, 층이 깊어질수록 곱해지는 값이 작아져 기울기가 소실된다.


2) ReLU 활성화 함수

ReLU(Rectified Linear Unit) 활성화 함수는 기울기 소실 문제를 해결하는 데 효과적이다.

ReLU의 도함수는 다음과 같이 정의된다:

\[ f(x) = \max(0, x) \]

이 함수는 0 이하의 값에서는 0을 출력하고, 0보다 크면 1의 기울기를 유지한다.

ReLU 함수

(4) 딥러닝의 유형

1) DFN (심층 순방향 신경망; Deep Feedforward Network)

...
순방향 신경망
출처: 나무위키

2) RNN (순환 신경망; Recurrent Neural Network)


3) CNN (합성곱 신경망; Convolutional Neural Network)

4) Generative NN (생성 신경망)

지난 2017년 8월 미국 워싱턴대학교 연구진은 버락 오바마 전 미국 대통령의 가짜 영상을 만들어 화제가 됐다.
...
Click on the person who is real
https://www.whichfaceisreal.com/

a) GAN (적대적 생성 신경망; Generative Adversarial Network)

...
경찰과 위조지폐범의 예시
출처: 과학기술정보통신부 블로그

b) Diffusion Model (디퓨전 모델)

...
https://www.superannotate.com/blog/diffusion-models



...
챗GPT로 생성한 “우주를 떠다니는 고양이”


(5) 딥러닝의 체험: 텐서플로(TensorFlow)

[유튜브] 딥러닝을 시각화해서 본다고!? 텐서플로 플레이그라운드

1) 텐서플로 플레이그라운드(TensorFlow playground) 접속하기

웹 브라우저에서 TensorFlow Playground에 접속한다. 초기 화면에는 데이터(DATA), 특성(FEATURES), 은닉층(HIDDEN LAYERS), 출력(OUTPUT) 영역이 배치되어 있으며, 분류(classification)를 기본 문제로 제공한다.

...
텐서플로 플레이그라운드로 딥러닝 이해하기
출처: https://medium.com/

2) 시작 버튼 클릭하기

▶ 버튼을 누르면 학습이 진행되며 에포크(epoch) 카운터가 증가한다. 학습 중에는 손실값의 변화를 통해 모델 수렴 여부를 확인할 수 있다. 손실이 일정 수준에서 더 이상 줄어들지 않으면 과대적합 혹은 한계에 도달한 것이다.


3) 출력 부분 살펴보기

OUTPUT 패널에는 결정 경계와 데이터 분포가 실시간으로 갱신된다. 학습 데이터와 검증 데이터는 서로 다른 색으로 표기되며, Training lossTest loss 곡선을 통해 과적합 여부를 가늠할 수 있다. 검증 손실이 학습 손실과 급격히 벌어지면 과적합 신호다.


4) 신경망의 구조 설계하기

은닉층의 개수와 각 층의 뉴런 수는 모델의 표현력을 좌우한다. 층과 뉴런을 늘리면 복잡한 경계를 학습할 수 있으나, 계산량 증가와 과적합 위험이 동반된다. 2‒3개 층, 층당 8‒12개 뉴런을 기준으로 시작한 뒤, 성능을 확인하며 조정한다.


5) 데이터 입력 형태 선택하기

기본 특성은 x₁, x₂이며, 필요에 따라 x₁·x₂, x₁², x₂², sin(x₁), sin(x₂) 등 파생 특성을 추가할 수 있다. Ratio of training to test data(훈련/검증 비율), Noise(노이즈), Batch size, Epoch을 조절한 뒤 REGENERATE를 눌러 새 데이터를 생성한다.


6) 복잡한 형태의 데이터 구분하기

비선형 경계가 필요한 데이터의 대표 예로 나선형(spiral)이 있다. 데이터셋에서 Spiral을 선택하고 적절한 은닉층 구성과 파생 특성을 더하면 나선형에 가까운 결정 경계를 학습할 수 있다.

핵심: 입력 특성 선택이 성능을 크게 좌우한다. 무작정 층과 뉴런을 늘리는 것보다, 문제 구조에 맞는 파생 특성 설계가 더 큰 개선을 제공한다.

7) 텐서플로 플레이그라운드 2배로 즐기기

화면 상단의 하이퍼파라미터를 적절히 조정하면 탐구 효율이 높아진다.

  1. Learning rate — 가중치 갱신 폭을 결정한다. 너무 크면 발산, 너무 작으면 수렴 지연이 발생한다.
  2. Activation — 비선형성을 도입하는 함수다. ReLU, Tanh, 시그모이드 등으로 경계의 매끈함과 수렴 특성이 달라진다.
  3. Regularization — 과적합을 줄이기 위한 항이다. L2 정규화를 사용하면 가중치가 과도하게 커지는 것을 억제한다.
  4. Regularization rate — 정규화 강도(λ). 값을 키우면 경계가 과도하게 매끈해질 수 있으므로 손실 곡선을 보며 조정한다.
  5. Problem type — 분류(classification)와 회귀(regression) 중 선택한다. 본 장에서는 주로 분류를 다룬다.